package com.yumeng.common.buss.area.dto;

import com.yumeng.common.buss.area.AreaCodeInfo;
import com.yumeng.common.buss.area.AreaHelper;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.Size;
import lombok.Getter;
import lombok.Setter;
import org.apache.commons.lang3.StringUtils;

/**
 * 包含省级
 * @author wxd
 * @date 2022/10/25 15:11
 */
@Getter
@Setter
public class TopAreaDto extends AreaDto {

    public TopAreaDto(){}
    public TopAreaDto(String areaCode){
        this(AreaHelper.getAreaCodeInfo(areaCode));
    }

    public TopAreaDto(AreaCodeInfo codeInfo){
        super(codeInfo);
        this.areaCodeProvince = codeInfo.getAreaCodeProvince();
    }

    @Size(min = 2, max = 2, message = "省级地区编码长度为2")
    @Schema(description = "省级地区编码，长度2")
    private String areaCodeProvince;

    /**
     * 获取最终地区编码 areaCode
     * 用于参数筛选，都为空，则返回null
     * 不包含最高级编码
     * @return
     */
    @Schema(hidden = true)
    public String getAreaCodeForParam(){
        String areaCode = super.getAreaCodeForParam();
        if (areaCode == null){
            if (StringUtils.isNotBlank(areaCodeProvince)){
                return areaCodeProvince;
            }else{
                return null;
            }
        }else {
            return areaCode;
        }
    }
}
